package com.tjbank.cssys.dto;

import java.util.ArrayList;
import java.util.List;

import javax.validation.constraints.NotBlank;
import com.tjbank.cssys.framework.base.dto.CommonDTO;
import com.tjbank.cssys.api.INode;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 机构
 *
 * Package : com.tansun.magicube.iam.dto
 *
 * @author -- lijiangtao 2020年5月7日 下午4:24:36
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class OrganDTO extends CommonDTO implements INode {

	/** ❤❤❤❤❤ */
	private static final long serialVersionUID = 1L;

	/** 机构代码 **/
	@NotBlank(message = "code:机构代码不能为空")
	private String code;

	/** 机构名称 */
	@NotBlank(message = "name:机构名称不能为空")
	private String name;

	/** 类型 */
	private String type;

	/** 状态 */
	protected String state;

	/** 父ID */
	@NotBlank(message = "parentId:父ID不能为空")
	private String parentId;

	/** 租户代码 */
	@NotBlank(message = "tenantCode:租户代码不能为空")
	private String tenantCode;

	/** 租户名称 */
	@NotBlank(message = "tenantName:租户名称不能为空")
	private String tenantName;

	private Integer lft;

	private Integer rgt;

	private List<INode> children;

	@Override
	public List<INode> getChildren() {
		if (this.children == null) {
			this.children = new ArrayList<>();
		}
		return this.children;
	}
}
